Computer pointing device

ABSTRACT

A computer pointing device ( 65 ) has a coupling device ( 1 ) for coupling to a computer serial bus. A primary control device ( 60 ) is coupled to the coupling device ( 1 ). A computer pointing mechanism ( 62 ) is coupled to the primary control device ( 60 ) and a data storage device ( 10 ) is coupled to the primary control device ( 60 ). The primary control device ( 60 ) controls data flow between the coupling device ( 1 ) and each of the computer pointing mechanism ( 62 ) and the data storage device ( 10 ). The data storage device ( 10 ) includes an interface device ( 2 ) coupled to the primary control device ( 60 ), a memory control device ( 3 ) and a non-volatile solid-state memory device ( 4 ). The memory control device ( 3 ) being coupled between the interface device ( 2 ) and the memory device ( 4 ) to control the flow of data from the memory device ( 4 ) to the interface device ( 2 ).

[0001] The invention relates to a computer pointing device.

[0002] Conventional computer pointing devices generally perform only onefunction. That is, to enable a user to point to data or information,select an action or perform commands on a computer by interacting with adisplay device also connected to the computer.

[0003] In addition, there is now a number of different devices that alsorequire to be connected to the computer such as external memory drivesand other peripherals. Therefore, it is becoming necessary to have moreand more connections for the various peripheral items.

[0004] In accordance with the present invention, there is provided acomputer pointing device comprising a coupling device for coupling to acomputer serial bus, a primary control device coupled to the couplingdevice, a computer pointing mechanism coupled to the primary controldevice and a data storage device coupled to the primary control device,the primary control device controlling data flow between the couplingdevice and each of the computer pointing mechanism and the data storagedevice; the data storage device comprising an interface device coupledto the primary control device, a memory control device and anon-volatile solid-state memory device, the memory control device beingcoupled between the interface device and the memory device to controlthe flow of data from the memory device to interface device.

[0005] An advantage of the invention is that by providing a computerpointing device including a data storage device, the computer pointingdevice can be used as both a computer pointing device and a data storagedevice. In addition, there is also the advantage that, as the datastorage device comprises a non-volatile solid-state memory device, it ispossible to provide a data storage device which may be coupled to acomputer having a serial bus port and which does not include movingparts or require a mechanical drive mechanism to read the data from thedata storage device.

[0006] Preferably, the data storage device is located wholly within ahousing of the computer pointing device, and is typically, not removablefrom the computer pointing device.

[0007] Preferably, the data storage device receives and outputs data inthe same format as the computer serial bus to which the computerpointing device is intended to be coupled.

[0008] Preferably, the computer pointing mechanism comprises aconventional computer mouse mechanism.

[0009] Preferably, the non-volatile solid-state memory device is aread/write memory device, such as a flash memory device or anelectrically erasable programmable read only memory device (EEPROM).

[0010] Preferably, where the memory device is a read/write memorydevice, the memory control device controls the flow of data to and fromthe memory device.

[0011] Typically, the computer pointing device further comprises amanually operated switch movable between a first position in whichwriting of data to the memory device is enabled, and a second positionin which writing of data to the memory device is prevented.

[0012] Preferably, the memory control device may include a read onlymemory, that stores a program to control the operation of the memorycontrol device. Preferably, the memory control device is amicro-controller.

[0013] Typically, the interface device comprises a universal serial bus(USB) driver to convert data between a USB format and a PC format, andthe coupling device comprises a USB coupling device.

[0014] Alternatively, the interface device comprises a driver for IEEE1394 (Firewire) protocol, and the coupling device comprises a Firewirecoupling device.

[0015] An example of a computer pointing device in accordance with theinvention will now be described with reference to the accompanyingdrawings, in which:

[0016]FIG. 1 is a block diagram of a computer pointing device includinga data storage device;

[0017]FIG. 2 is a schematic block diagram of the data storage device;

[0018]FIG. 3 is a flow diagram showing the initial setup of the datastorage device by a software supplier;

[0019]FIG. 4 is a flow diagram showing the initial setup of the datastorage device by an end user;

[0020]FIG. 5 is a flow diagram illustrating the operation of thecomputer pointing device; and

[0021]FIG. 6 is a flow diagram showing operation of the data storagedevice.

[0022]FIG. 1 is a block diagram showing a computer mouse 65. The mouse65 includes a USB connector 1 that is coupled to a USB hub controller60. The USB hub controller 60 is also coupled to an output 61 from aconventional computer mouse mechanism 62 and to a data storage device 10that is mounted within the housing of the mouse 65. Hence, the externalappearance of the mouse 65 is similar or identical to a conventionalcomputer mouse.

[0023]FIG. 2 shows in more detail the data storage device 10 that iscoupled to the USB hub controller 60. The data storage device 10comprises a USB interface device 2 that is coupled to the USB hubcontroller 60. The USB interface device 2 is also coupled to amicro-controller 3 that is coupled to a flash memory 4. Themicro-controller 3 includes a read only memory (ROM) 5 that stores aprogram to control the operation of the micro-controller 3.

[0024] The operations performed by the micro-controller 3 includecomparing passwords entered by a user with a corresponding passwordstored in the flash memory 4 to determine whether the user is authorisedto access the contents of the flash memory 4. The program stored in theROM 5 also controls the data flow to and from the flash memory 4 and canalso detect whether the computer to which the memory device 1 is coupledhas installed software programs that correspond to passwords stored inthe flash memory 4. The micro-controller 3 can automatically retrievepasswords from the installed software to compare with passwords storedin the flash memory to verify that a user of the computer is authorisedto access and run the software. In addition, the program stored in theROM 5 also permits the setting of a password in the flash memory by asoftware supplier to correspond to the password contained in softwaresupplied to a user. Typically, the password may correspond to the serialnumber of the software.

[0025] The flash memory 4 is typically divided into a number ofdifferent sections or zones. Typically, the flash memory is divided intotwo zones and each zone has a unique password. If the data storagedevice 10 is supplied with packaged software, the software serial numbercan be set in one zone to be the password to permit a user to access anduse the software. The other zone, which can be used typically forstoring a user's data, may have a separate password that is set by theuser. Typically, the passwords are stored in a secure location of theflash memory in an encrypted form. The encryption, decryption, data flowcontrol and USB protocol are all managed by the micro-controller 3.

[0026] The micro-controller 3 also includes a random access memory (RAM)6 which is a temporary storage area to permit functioning of themicro-controller 3. In addition, a manual switch 7 is coupled betweenthe flash memory 4 and the micro-controller 3. The manual switch 7 islocated on the external surface of the mouse 65 and is movable between afirst position, in which a user may write data to the flash memory 4,and a second position, in which data is prevented from being written tothe flash memory 4.

[0027] The mouse 65 may also include a USB socket (not shown) that iscoupled directly to the USB connector 1 and permits other USB devices tobe coupled to the USB via the mouse 65. For example, if a user wishes toincrease memory space, a USB connector of a second memory device 10 maybe connected to the USB socket.

[0028]FIG. 3 is a flow diagram showing the set up procedure for thedevice 10 for a software supplier when the software supplier intends tosupply the mouse 65 as an authentication device for the software.Firstly, the connector 1 is plugged into 20 a USB socket on a computer.After the mouse 65 has been plugged into the USB socket on the computer,a communication is established 21 between the computer and the device10. The software supplier has pre-installed installation software on thecomputer which is run by the operator. From the pre-installed software,the operator selects password set up installation 22, in response towhich the pre-installed software requests the operator to enter apassword or serial number corresponding to the software with which thedevice 10 is to be supplied. The password or serial number is thenencrypted 26 and stored 27 in the flash memory 4.

[0029]FIG. 4 is a flow diagram showing the initial set-up of a passwordfor zone 2 of the flash memory 4 by an end user. The mouse 65 istypically supplied with driver software for the device 10 that is loadedby the user onto the computer prior to set-up of the device 10. Toset-up the password for zone 2 the user plugs in 20 the mouse 65 into aUSB port on the computer and communication 21 is established between thecomputer and the device 10. The user then runs the driver software andthe driver software enters a password installation set-up mode 23 forzone 2. The user then enters 28 a password that they wish to use toprevent unauthorised access to zone 2 of the flash memory 4. Thepassword entered is then encrypted 29 and stored 30 in the flash memory4.

[0030] After an end user has performed the initial password set upprocedure described above and shown in FIG. 4, when a user plugs in 20the mouse 65 to a USB port on a computer, the computer will establish acommunication 21 with the mouse mechanism 62 and the device 10, as shownin FIG. 5. When the communication with the device 10 is established, thecomputer first checks 33 an installation status flag stored in the flashmemory 4 (see FIG. 6). If the status flag is “Y”, the device 10 outputs34 an “OK” flag to the computer. The micro-controller 3 then instructsthe computer to issue a request 35 to the user to select the zone thatthey wish to enter. If the status flag is “N”, the device does notoutput an “OK” flag to the computer, and goes straight to step 35. Inresponse to the request 35 for zone selection, the user selects 36either zone 1 or zone 2.

[0031] If zone 1 is selected, the device 10 assumes that the user wishesto install software on the computer that is stored in the flash memory 4and requests 37 the appropriate password for confirmation that the useris authorised to install the software. The micro-controller 3 receivesthe password entered by the user, retrieves the zone 1 password storedin the flash memory 4, decrypts the zone 1 password and compares it withthe password entered by the user to authenticate 38 whether the user isauthorised to install the software. If the passwords do not match, thedevice 10 prompts the computer to request 37 the user to enter thepassword again.

[0032] If the password entered by the user matches the password storedin the flash memory 4, the micro-controller 3 starts 39 the softwareinstallation from the flash memory 4 to the computer. In order toinstall software, the computer sends 40 a read/write command in USBformat to the micro-controller 3 for data, the micro-controller 3retrieves the requested data from the flash memory 4, converts the datato a PC format compatible with the operating system of the computer. Forexample, this may be FAT 16 or FAT 32 format. The micro-controller 3then sends 41 the data to the interface device 2. The device 2 converts42 the data to USB format and outputs the data to the computer throughthe USB hub controller 60 and connector 1. The micro-controller 3 thenchecks 43 whether the software installation is complete. If theoperation is not complete, the operation returns to step 40. If theinstallation of the software is complete, the status flag stored in theflash memory 4 is changed to “Y”.

[0033] If a user selects zone 2, the micro-controller 3 sends a commandto the computer to request 46 the user to enter the password for zone 2.When the user enters the password, the computer sends the password tothe micro-controller 3. The micro-controller 3 retrieves the passwordfor zone 2 from the flash memory 4, decrypts 47 the password andcompares it with the password entered by the user. If the passwordentered by the user is incorrect, the operation returns to step 46 andthe computer requests 46 the user for the password again.

[0034] If the password entered by the user is correct, the user hasaccess to zone 2 of the flash memory 4 to read data from the flashmemory 4 and to write data to the flash memory 4. However, data can onlybe written to the flash memory 4 if the manual switch 7 is in theposition to permit data to be written to the flash memory 4. In order toread or write data from or to the flash memory 4 a read or write commandis sent 48 by the computer using USB protocol to the micro-controller 3.In response to a read command the micro-controller 3 retrieves 49 datafrom the flash memory 4, converts the data to a PC format compatiblewith the computer operating system, such as FAT 16 or FAT 32. Themicro-controller then sends the data to the interface device 2 forconversion 50 to USB format and then output to the computer. In responseto write command, the micro-controller receives data from the interfacedevice 2 to write to the flash memory 4.

[0035] The micro-controller 3 then determines 51 whether the read orwrite operation is complete. If the operation is not complete it returnsto step 48. If the operation is complete the operation terminates 52.

[0036] While the computer is reading/writing to the data storage device10, the mouse 65 can be used as a conventional computer mouse by a userand the USB hub controller 60 acts as a multiplexer to control taskswitching between the mouse mechanism 62 and the data storage device 10.

[0037] The mouse 65 described above is for coupling to a universalserial bus (USB). However, the connector 1, the USB hub controller 60,the interface device 2 and socket 8 could be for use with any suitablecomputer serial bus. For example, the device 10 could be modified foruse with IEEE 1394 (Firewire) protocol by substituting the USB connector1, USB hub controller 60, USB interface device 2 and USB socket 8 with aFirewire protocol compatible plug, hub controller, interface device andsocket respectively.

[0038] An advantage of the mouse 65 described above is that it combinesa computer pointing mechanism with a data storage device. This isespecially useful with a laptop, notebook or other portable computerwhere the number of serial ports, and especially USB ports, is limited.In addition the mouse 65 by its very nature is portable and the datastorage device does not require a mechanically operated reading/writingdevice.

1. A computer pointing device comprising a coupling device for couplingto a computer serial bus, a primary control device coupled to thecoupling device, a computer pointing mechanism coupled to the primarycontrol device and a data storage device coupled directly to the primarycontrol device, the primary control device controlling data flow betweenthe coupling device and each of the computer pointing mechanism and thedata storage device; the data storage device comprising an interfacedevice coupled to the primary control device, a memory control deviceand a non-volatile solid-state memory device, the memory control devicebeing coupled between the interface device and the memory device tocontrol the flow of data from the memory device to the interface device.2. A device according to claim 1, wherein the data storage device islocated wholly within a housing of the computer pointing device.
 3. Adevice according to claim 1 or claim 2, wherein the data storage deviceis not removable from the computer pointing device.
 4. A deviceaccording to any of the preceding claims, wherein the data storagedevice receives and outputs data in the same format as the computerserial bus to which the computer pointing device is to be coupled.
 5. Adevice according to any of the preceding claims, wherein the computerpointing mechanism is a computer mouse mechanism.
 6. A device accordingto any of the preceding claims, wherein the non-volatile solid-statememory device is a read/write memory device.
 7. A device according toclaim 6, wherein the read/write memory device is a flash memory device.8. A device according to claim 6 or claim 7, wherein the memory controldevice controls the flow of data to and from the memory device.
 9. Adevice according to any of claims 6 to 8, further comprising a manuallyoperated switch movable between a first position in which writing ofdata to the memory device is enabled, and a second position in whichwriting of data to the memory device is prevented.
 10. A deviceaccording to any of the preceding claims, wherein the memory controldevice comprises a micro-controller.
 11. A device according to any ofthe preceding claims, wherein the coupling device comprises a universalserial bus (USB) coupling device and the interface device comprises aUSB driver.
 12. A device according to any of the preceding claims,wherein the coupling device comprises an IEEE 1394 (Firewire) protocolcoupling device and the interface device is a Firewire protocol driver.